package com.game.Maze.Utils;

import java.util.HashMap;
import java.util.UUID;

/**
 * Объект создающий уникальные идентификаторы для классов
 *
 */
public class ObjectsIdFactory
{
  private HashMap<Class<?>, UUID> m_Idents;
  
  private ObjectsIdFactory()
  {
    m_Idents = new HashMap<Class<?>, UUID>();
  }
  
  public UUID createId(Class<?> objectClass)
  {
    if (m_Idents.containsKey(objectClass))
      return m_Idents.get(objectClass);
    else
    {
      UUID newId = UUID.randomUUID();
      m_Idents.put(objectClass, newId);
      return newId;
    }
  }
  
  private static class ObjectsIdFactoryHolder { 
    public static final ObjectsIdFactory instance = new ObjectsIdFactory();
  }

  public static ObjectsIdFactory getInstance() {
    return ObjectsIdFactoryHolder.instance;
  }  
}
